package restlet;

import java.util.Vector;

import javax.jdo.PersistenceManager;

import model.Mesto;
import model.Util;
import model.Version;

import org.restlet.resource.ServerResource;

import restlet.interfaces.PlaceResourceI;
import app.PMF;
import beans.MestoBean;

public class PlaceResource extends ServerResource implements PlaceResourceI {
		
	/**
	 * Tabamo u nova mesta, jel klasa Mesto, sadrzi anotacije i atribut KEY
	 * koji nisu serijalizabilni
	 * */
	@Override
	public Vector<MestoBean> allPlaces() {
		
		System.out.println(getMethod().getName());
		System.out.println(getMethod().getUri());

		Vector<MestoBean> mesta = new Vector<MestoBean>();
		for(Mesto m : Util.getAllEntitiesFromTable(Mesto.class)){
			mesta.add(m.toBMestoBean());
		}
		return mesta;
	}
	
	@Override
	public Boolean addPlace(MestoBean param) {
		
		System.out.println(param);
		String naziv =param.getNaziv();
		getLogger().warning("PlaceResource123,place: " + naziv);
		
		//Reference.decode((String) getRequest().getAttributes().get("name"));
		//System.out.println("Dodajemo mesto: " + place.getNaziv());
		//pretrazujemo bazu po nazivu
		
		System.out.println("Naziv: " + naziv);
		
		Mesto rMesto = Util.getEnityByFieldEqualsValue(Mesto.class, "naziv", naziv);
		//ako ne postoji u bazi, dodajemo ga
		if(rMesto == null){
			Mesto mesto = new Mesto(naziv);
			PersistenceManager pm = PMF.get().getPersistenceManager();
			pm.makePersistent(mesto);
			System.out.println("Dodato mesto: " + mesto);
			
			//apdejtujemo novu verziju klase
			Version vMesta = Util.getEnityByFieldEqualsValue(Version.class,
					"imeKlase", Mesto.class.getSimpleName());
			vMesta.setVrednost(vMesta.getVrednost()+1);
			pm.makePersistent(vMesta);
			
			pm.close();
			return Boolean.valueOf(true);
		}
		else{
			//mesto vec postoji
			return Boolean.valueOf(false);
		}
	}

}
